package com.zhz.model.employee;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zhz.common.tool.mybatisplus.base.dal.entity.BasePO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.time.LocalDate;

/**
 * 岗位信息
 *
 * @author zhouhengzhe
 * @date 2023/3/21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@TableName("em_user_company_jobs")
public class UserCompanyJobs extends BasePO {
    /**
     * 员工ID
     */
    @TableField(USER_ID)
    private String userId;

    /**
     * 企业ID
     */
    @TableField(COMPANY_ID)
    private String companyId;

    /**
     * 岗位
     */
    @TableField(POST)
    private String post;

    /**
     * 工作邮箱
     */
    @TableField(WORK_MAILBOX)
    private String workMailbox;

    /**
     * 职级
     */
    @TableField(RANK)
    private String rank;

    /**
     * 转正评价
     */
    @TableField(CORRECTION_EVALUATION)
    private String correctionEvaluation;

    /**
     * 汇报对象
     */
    @TableField(REPORT_ID)
    private String reportId;

    @TableField(REPORT_NAME)
    private String reportName;

    /**
     * 转正状态
     */
    @TableField(STATE_OF_CORRECTION)
    private String stateOfCorrection;

    /**
     * hrbp
     */
    @TableField(HRBP)
    private String hrbp;

    /**
     * 首次参加工作时间
     */
    @TableField(WORKING_TIME_FOR_THE_FIRST_TIME)
    private LocalDate workingTimeForTheFirstTime;

    /**
     * 调整司龄天
     */
    @TableField(ADJUSTMENT_AGEDAYS)
    private Integer adjustmentAgedays;

    /**
     * 调整工龄天
     */
    @TableField(ADJUSTMENT_OF_LENGTH_OF_SERVICE)
    private Integer adjustmentOfLengthOfService;

    /**
     * 工作城市
     */
    @TableField(WORKING_CITY)
    private String workingCity;

    /**
     * 纳税城市
     */
    @TableField(TAXABLE_CITY)
    private String taxableCity;

    /**
     * 现合同开始时间
     */
    @TableField(CURRENT_CONTRACT_START_TIME)
    private LocalDate currentContractStartTime;

    /**
     * 现合同结束时间
     */
    @TableField(CLOSING_TIME_OF_CURRENT_CONTRACT)
    private LocalDate closingTimeOfCurrentContract;

    /**
     * 首次合同开始时间
     */
    @TableField(INITIAL_CONTRACT_START_TIME)
    private LocalDate initialContractStartTime;

    /**
     * 首次合同结束时间
     */
    @TableField(FIRST_CONTRACT_TERMINATION_TIME)
    private LocalDate firstContractTerminationTime;

    /**
     * 合同期限
     */
    @TableField(CONTRACT_PERIOD)
    private String contractPeriod;

    /**
     * 合同文件
     */
    @TableField(CONTRACT_DOCUMENTS)
    private String contractDocuments;

    /**
     * 续签次数
     */
    @TableField(RENEWAL_NUMBER)
    private Integer renewalNumber;

    /**
     * 其他招聘渠道
     */
    @TableField(OTHER_RECRUITMENT_CHANNELS)
    private String otherRecruitmentChannels;

    /**
     * 招聘渠道
     */
    @TableField(RECRUITMENT_CHANNELS)
    private String recruitmentChannels;

    /**
     * 社招校招
     */
    @TableField(SOCIAL_RECRUITMENT)
    private String socialRecruitment;

    /**
     * 推荐企业人
     */
    @TableField(RECOMMENDER_BUSINESS_PEOPLE)
    private String recommenderBusinessPeople;

    public static final String USER_ID = "user_id";

    public static final String COMPANY_ID = "company_id";

    public static final String POST = "post";

    public static final String WORK_MAILBOX = "work_mailbox";

    public static final String RANK = "rank";

    public static final String CORRECTION_EVALUATION = "correction_evaluation";

    public static final String REPORT_ID = "report_id";

    public static final String REPORT_NAME = "report_name";

    public static final String STATE_OF_CORRECTION = "state_of_correction";

    public static final String HRBP = "hrbp";

    public static final String WORKING_TIME_FOR_THE_FIRST_TIME = "working_time_for_the_first_time";

    public static final String ADJUSTMENT_AGEDAYS = "adjustment_agedays";

    public static final String ADJUSTMENT_OF_LENGTH_OF_SERVICE = "adjustment_of_length_of_service";

    public static final String WORKING_CITY = "working_city";

    public static final String TAXABLE_CITY = "taxable_city";

    public static final String CURRENT_CONTRACT_START_TIME = "current_contract_start_time";

    public static final String CLOSING_TIME_OF_CURRENT_CONTRACT = "closing_time_of_current_contract";

    public static final String INITIAL_CONTRACT_START_TIME = "initial_contract_start_time";

    public static final String FIRST_CONTRACT_TERMINATION_TIME = "first_contract_termination_time";

    public static final String CONTRACT_PERIOD = "contract_period";

    public static final String CONTRACT_DOCUMENTS = "contract_documents";

    public static final String RENEWAL_NUMBER = "renewal_number";

    public static final String OTHER_RECRUITMENT_CHANNELS = "other_recruitment_channels";

    public static final String RECRUITMENT_CHANNELS = "recruitment_channels";

    public static final String SOCIAL_RECRUITMENT = "social_recruitment";

    public static final String RECOMMENDER_BUSINESS_PEOPLE = "recommender_business_people";
}